草庐IT

Java Map 按值排序

全部标签

PHP按字段名对多维数组进行排序

我已尝试调整此代码以用于对命名键/字段上的多维数组进行排序。该字段是一个整数,我需要将其从最小到最大排序。functionmyCmp($a,$b){returnstrcmp($a["days"],$b["days"]);}uasort($myArray,"myCmp");这按我的需要对数组进行了排序,但顺序错误。目前它从最大到最小排序,而不是使用自然顺序。我需要按自然顺序从小到大排序(例如,2在5、12和24之前)。 最佳答案 strnatcmp()是你的friend例如(使用php5.3闭包/anonymousfunction):

PHP 按索引对二维数组进行排序(非关联)

此代码无法正常运行,但它表明了我正在尝试做的事情:functionsort_2d_by_index($a,$i){functioncmp($x,$y){//Nestedfunction,can'tfind$i//(global$idefeatsthepurposeofpassinganarg)if($x[$i]==$y[$i]){return0;}return($x[$i]必须有更好的方法来做到这一点。我一直在研究ksort()、multisort()和各种各样的方法,直到我厌倦了尝试将其全部解决。情况是这样的:我有一个二维数组...array(array(3,5,7),array(2

php - 在 PHP 中对二维数组进行排序

我有一个如下所示的数组:Array([90]=>Array([1056]=>44.91[1055]=>53.56[1054]=>108.88[1053]=>23.28),[63]=>Array([1056]=>44.44[1055]=>53.16[1054]=>108.05),[21]=>Array([1056]=>42.83[1055]=>51.36[1054]=>108.53));两个键([x]和[y])都指向我数据库中的ID,因此它们需要保持完整。[x]的顺序无关紧要,但我需要按[y]的值对每个数组进行排序。编辑:我试过这个循环,但它似乎不起作用:foreach($distanc

PHP 如何先按键然后按值对关联数组进行排序?

$arr=array(28=>23,26=>23,15=>12,29=>12,1=>12,16=>15,30=>15,11=>12,8=>23,33=>23);如何排序:8=>2326=>2328=>2333=>2316=>1530=>151=>1211=>1215=>1229=>12 最佳答案 使用uksort,但使数组可用于比较函数以按值进行二次比较。将其设为全局变量将是最快且最肮脏的方式。 关于PHP如何先按键然后按值对关联数组进行排序?,我们在StackOverflow上找到一个

php - 按子键日期对多维数组进行排序?

我有以下数组:[0]=>Array([name]=>TheName[description]=>description[date]=>Thur,May5@7:00p.m.[rating]=>PG[year]=>2011)[1]=>Array([name]=>Name2[description]=>description2[date]=>Sun,May8@7:30p.m.[rating]=>14A[year]=>2011)还有大约5-10个零件。我最终想要做的是使用数组的日期部分按天对这些项目进行分组(即,“所有具有“日期”的项目都应按“5月8日”分组)。知道我该怎么做吗?请注意,“日期

php - 对多维数组进行排序?

我有一个如下所示的数组:Array([0]=>Array([filters]=>Array([filter_1]=>1[filter_2]=>1[filter_3]=>1[filter_4]=>1[filter_5]=>1[filter_6]=>1),[count]=>2),[1]=>Array([filters]=>Array([filter_1]=>1[filter_2]=>1[filter_3]=>1[filter_4]=>1[filter_5]=>1[filter_6]=>1),[count]=>34)[2]=>Array([filters]=>Array([filter_1]

php - 用最高分对数组进行排序

如何用最高点对数组进行排序?例子:$sale=array();Array([UserA]=>Array([unsuccessful]=>0[Points]=>31[procesing]=>4)[UserB]=>Array([unsuccessful]=>4[Points]=>200[procesing]=>1)[UserC]=>Array([unsuccessful]=>3[Points]=>150[procesing]=>55))按积分排序,应该是依次为:UserB、UserC、UserA 最佳答案 uasort($array,f

php - 过滤 scandir 并按创建日期排序

我需要获取数组中目录中的文件。仅以.markdown结尾的文件文件应按创建日期排序效率不是一个巨大的交易,但我总是喜欢让事情尽可能高效。将有多个目录,每个目录中最多有几百个文件。我知道我使用scandir函数将文件放入数组中,但我不确定从那里去哪里。我可以将它放入循环中以检查文件是否以.markdown结尾,但是是否有某种正则表达式我可以传递给扫描?谢谢 最佳答案 您可以使用glob()获取文件名数组然后使用usort()和filectime()按创建日期排序:$files=glob('*.markdown');usort($fil

php - 按多维数组中的值排序

这是我从GoogleCalendar获取的用于显示事件的多维数组。Array([items]=>Array([0]=>Array([status]=>confirmed[summary]=>Let'sgoswimming![start]=>Array([dateTime]=>2011-12-30T09:00:00-05:00)[end]=>Array([dateTime]=>2011-12-30T10:00:00-05:00))[1]=>Array([status]=>confirmed[summary]=>redwine[start]=>Array([dateTime]=>2011-

php - 按键排序数组并反转结果

我有一个这样的数组:$array=array([1]=>'something',[0.2]=>'something',[0.1]=>'something',[0.3]=>'something',[0.10]=>'something');现在我想按键对这个数组进行排序,为此我使用了这段代码:uksort($array,'strnatcasecmp');上面的代码工作正常,但唯一的问题是我想反转结果。为此,我在uksort之后使用了krsort、array_reverse、rsort,但它们都改变了uksort的结果。那么我可以按自然顺序按键对这个数组进行排序并反转结果吗?我想要的应该是这